Data clustering is a technique for statistical data analysis, which can be applied in any of a number of fields, including machine learning, data mining, pattern recognition, image analysis and bioinformatics. Clustering is the classification of similar objects into different groups, or more precisely, the partitioning of a data set into subsets, referred to as clusters, such that the data in each subset share some common trait, often proximity according to some defined distance measure. Data clustering is generally regarded as a form of unsupervised learning.